iT邦幫忙

2021 iThome 鐵人賽

DAY 26
1

「———≡」


分叉

網路上的傳播是有時間誤差的,也就是說如果今天 A 礦工成功挖到礦,並把挖到的區塊公布給其他節點,
在這個公告傳遍全世界的過程中,若有另外一個礦工B挖到了礦,他也把挖到的區塊公布給其他節點,
那麼較靠近A的節點們就會在帳本上紀錄 A 的區塊,靠近B的節點們就會記錄B的區塊。
(這裡的區塊不一定一樣,因為礦工可以自由選擇要包進區塊的交易。)

於是在網路上就出現了兩種帳本,也就是有兩個區塊都接在上一個區塊之後。
我們稱這個現象為分叉,而分叉無可避免的會發生。

分叉後的鏈有兩個接口,礦工就會選擇他認可的鏈繼續挖下去,
這時兩條分叉的鏈就會進行一個競賽。

在比特幣鏈上有個最長鏈機制(The Longest Chain Rule),意思是只有在最長鏈(主鏈)上的交易會受到認可,
在較短的鏈上的交易不會被認可,交易資訊會重新回到網路中等到礦工再次打包,
打包到短鏈的礦工也不會獲得報酬,因此礦工也會自然而然地追隨最長鏈。

然而在乙太幣鏈上分叉出現的機率遠遠大於比特幣鏈,因為乙太鏈每15秒就會產出一個新的區塊。
因此在乙太鏈上就算出現分叉,短鏈在之後也有機會重新接回主鏈,
打包短鏈的礦工、幫忙接回主鏈的礦工皆會得到報酬,只是沒有正常打包報酬高,
但是只要有報酬就會有人做,所以這個機制可以運行下去。

最長鏈的共識造就了區塊鏈難以遭到竄改的性質,
如果有人想竄改資料,他就必須和全世界的節點對抗,因為只有最長鏈上的交易會受到認可。
而這種和全世界的人對抗的攻擊稱為51%攻擊,
因為攻擊者必須以自身的能力達成世界上51%的算力,才有可能讓自己所竄改的區塊成為最長鏈,
因此實際上在算力龐大的鏈要達成51%攻擊是不可行的,這種攻擊只有可能實現在小鏈上。

軟分叉和硬分叉

另外一種分叉是人為產生的分叉,通常是為了系統更新的時候所進行的分叉。
區塊鏈並沒有一個中心系統可以一次更新,而是由所有節點形成系統。

這有點像一個組織,組織成員都有自由選擇不同的行事方式,
而透過討論的方式它們可以決定未來走向,成員可以接受或不接受。
區塊鏈中每個節點都是獨立的個體,也沒有辦法制止節點進行任何事情。
因此若是區塊鏈要進行更新,就要進行大眾討論的方式。

而討論不一定有共識,至少不一定所有人都贊同新的做法,這時就要進行鏈上分叉。

  • 軟分叉:新區塊不能兼容舊區塊
  • 硬分叉:新區塊可以兼容新區塊

#以下稱使用更新後協定打包的區塊為新區塊,反之為舊區塊。

軟分叉顧名思義就是較為柔軟,沒有那麼強硬。
舊區塊仍然可以繼續接在鏈上,只是新區塊不能接在舊區塊上。
於是若新礦工人數較多時,舊礦工所接出的區塊就會成為孤兒塊(沒有後續區塊的區塊),也就不會得到報酬。
於是舊礦工可以選擇更新協定,轉變成新礦工。

硬分叉為較強硬的分叉方式,
因為舊區塊無法接在新區塊之後,因次舊礦工要馬成為新礦工,要馬繼續維護原鏈,
如果舊礦工夠多,區塊鏈就會分叉成兩個不同的鏈,也就會產生分叉幣(如BCH、ETC)。


今天的內容雖然跟密碼學比較沒有關係,
不過我個人認為有密碼學底子的人在看區塊鏈會比較知道在幹嘛,
也更可以理解分叉在實際上到底發生了什麼事。

https://ithelp.ithome.com.tw/upload/images/20211008/20140112fQRQyUexRj.jpg

圖片來源:
https://www.meme-arsenal.com/en/create/meme/1203703
https://www.potatomedia.co/post/df651897-3c56-4241-aa68-d7a7e6926c2c
https://monnos.com/en/blog/what-is-a-soft-or-hard-fork/
https://memegenerator.net/instance/75401316/bbnokay-okay-then-bye-bye-now

參考資料:
https://www.potatomedia.co/post/7fec48ce-0c06-47e0-b9d9-4cd971af5e4f#comment
https://corporatefinanceinstitute.com/resources/knowledge/other/hard-fork/
https://ithelp.ithome.com.tw/articles/10216164
https://www.samsonhoi.com/846/blockchain_hardfork_softfork


上一篇
DAY 25- 區塊鏈 Blockchain
下一篇
DAY 27- 地址 Address
系列文
學密碼學也猜不到你的手機密碼30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言